The present invention is directed to the distribution of data such as news, events, notifications, files, media-clips and other application data to multiple devices operating in a network, and more specifically, to a system and associated apparatus and methods for efficiently providing and managing the distribution of such data to client devices using a broadcast mode of data transfer. The invention is particularly applicable to the broadcast of data to mobile devices operating in a wireless network where addressing each device individually can be inefficient in terms of network resource usage or technically not feasible due to network bandwidth limitations, although it is understood that the systems, apparatus, and methods discussed are applicable to other devices as well, and may be implemented in such a manner as to involve data transmission over either a wired or wireless network.
Although in portions of the following description the present invention will be discussed with reference to mobile wireless devices operating in a wireless network, it is to be understood that that the inventive systems, apparatus and methods are generally applicable to other types of devices as well, and to networks other than wireless networks (e.g., fixed high-speed bidirectional networks such as an Internet based communications networks, or fixed or wireless bidirectional networks in which communication in one direction is faster than in the other). Applicable devices include, for example, ATM machines, informational kiosks, vending machines, and navigation systems. One example of a situation in which the present invention would be applicable would be an automobile navigation system where there is no or only limited ability for the user device to communicate with the source of the data. Another example is that of an information kiosk that may have limited upstream communications capabilities. In general, the present invention is most applicable to client devices where there is a broadcast mechanism or other efficient data distribution mechanism in one direction (network to many devices), but there is not an efficient/cost-effective or available two-way mechanism to pull data customized for each device. Although the invention provides significant benefits for such networks, as mentioned, in general it may be used in the context of high-speed fixed or wireless bidirectional networks with symmetric or asymmetric communications capabilities.
The increasing adoption of data services by users has resulted in a related increase in the types of such services available, and in the variety of data and applications of interest to those users. Users of mobile wireless devices presently have, or soon will have the ability to receive sports information, news, stock quotes, and real-time data specific to a particular application executing on their device, as well as emergency notifications and location specific data, for example.
However, the use of mobile wireless devices such as mobile phones, PDAs, and wirelessly connected laptop computers introduces certain factors into any system designed to deliver data to applications executing on those devices, where some of the factors may not be significant or relevant in a fixed high-speed bidirectional communications system (such as an Internet based communications system). For example, a situation in which a mobile device must communicate with a central data store or server over a wireless network may introduce bandwidth constraints, latency concerns, intermittent connectivity problems, and prohibitive cost into any system designed to transfer data and content to a user of a client device. In addition, the lower available bandwidth as compared to a high-speed wire line network may place constraints on the type or complexity of the data or content that can be effectively delivered. Also, mobile networks typically can not handle a large number of simultaneous client-initiated unicast (i.e., individually addressed server to client communications) transactions without severe adverse impact on other network traffic. Similarly, latency and intermittent connectivity concerns may impact the ability of the client device to communicate with a source of data or content to confirm delivery of content. In addition, mobile and other specialized devices typically have characteristics that impose constraints on the storage and processing of data that are not present when using desktop computers or other devices connected to a high speed bidirectional network. These constraints may include display size and resolution, data processing speed, and data storage capacity.
As a result, a threshold issue in determining how best to deliver data to a device is that of the mode of data transfer used for communications between intended recipients and the network infrastructure. In many types of networks, communications between the network infrastructure and individual users may be accomplished by either a point-to-point communication or by the broadcast of data to a group of recipients. Each method of data transfer has certain advantages and associated disadvantages, both with regards to optimal network infrastructure usage and with regards to enabling effective use of the type of data being transferred.
For example, point-to-point communications are most efficient for a relatively small group of recipients, as they may require significant infrastructure overhead in terms of recipient device addressing, allocation of dedicated bandwidth, and management of requests from devices and the related processing of responses to those requests. Another disadvantage of point-to-point communications is that the cost in terms of network resources and overhead is proportional to the number of client devices receiving the transmission, so that costs generally scale directly with the number of recipients.
In contrast, broadcasting data to a larger group of recipients may be more cost-effective and a better way to allocate network infrastructure resources in certain situations and with regards to certain types of data. Broadcasting provides benefits in terms of efficiency and scalability, and the cost for broadcasting data is not directly proportional to the number of recipients. Broadcasting enables data to be delivered efficiently to a larger group of recipients without the need for communicating client-side requests to a server and may be more efficient in terms of resource usage for certain types of applications. Broadcasting is capable of providing comparatively lower cost per bit of data transferred, and for certain applications may be a more practical and effective means of delivering data to interested users.
The type of data or application for which the data is intended may also introduce factors that should be considered in deciding upon the desired mode of data transfer. Certain types of applications require asynchronous, simultaneous distribution of data to a large set of clients. These applications include, but are not limited to, safety alerts, emergency notifications, traffic and extreme weather updates, sporting event updates, news updates, stock quote updates, or other data that is of potential interest to a large group of users and is time sensitive or whose value dissipates rapidly. For such applications, it may be more important to provide the relevant data to a region or section of a network's coverage than to respond to only those users who specifically request the data. In addition, in situations of intermittent or unreliable coverage, the time and network resources required for processing a request-response interaction may not be available when needed.
For these and other reasons, and particularly for bandwidth-constrained data distribution networks such as many mobile data networks, it is often advantageous to utilize a broadcast mode for distribution of events or data. Note that as used herein, the term “events” or “data” refers to data of arbitrary size and type that is meaningful or relevant to the application receiving the data. Examples include a message intended to be displayed to the user of the receiving application, data to be presented within an application (e.g., news, weather, sports information or updates), a video clip to be played to the user, or a data update for the application. Some applications may depend on data and/or events being received and processed reliably and in sequence, in contrast to applications such as streaming media that are designed to be more resilient to situations in which there are missing data packets. In addition, sometimes data and/or events are spaced apart far enough in time that applications expect individual notifications as data and/or events arrive, rather than processing a buffered stream of data.
An important consideration in designing a data delivery system for mobile devices connected to a wireless network, or more generally for devices connected to networks other than high-speed bidirectional networks, is that of providing the data in a way that is effective for the end user's intended use while being efficient for a network operator. In this sense, network operator “efficiency” generally involves consideration of the optimal use of limited or constrained network resources. These resources include bandwidth (and related data transfer resources) and data processing resources (as might be used to process request-response interactions with client devices). Further, “effective for the end user's intended use” refers to data that is timely and is presented in a manner that makes its consumption by the user desirable.
As noted, whether using a point-to-point or broadcast mode of data transfer, an important consideration is the efficient use of network resources, primarily bandwidth and data processing resources. Bandwidth is a limited and valuable commodity, whether being used in a point-to-point mode to transfer a request from a client to a server or to transfer a response to that request (e.g., data in the form of text, audio, video, multi-media, notifications, etc.) to a client device. Similarly, even in a broadcast mode bandwidth is still an important resource because data is being transferred by a number of serving applications to a large number of client devices, some of which may or may not be interested in the data for any particular application broadcasting data. In addition, data processing resources such as those required to receive and process client requests can become a significant burden on a network if a large number of client devices are sending requests or data to a central server within a relatively small timeframe.
Because bandwidth is a limited resource, it needs to be efficiently allocated between multiple users and between multiple applications that utilize that bandwidth to provide data services to those users. Typically, there are two basic modes of bandwidth usage for multiple applications; dedicated and shared. Dedicated refers to an approach where a fixed amount of bandwidth is made available to each application, with each such application being able to utilize that bandwidth as desired. Sharing refers to an approach where multiple applications share an amount of bandwidth, with certain rules or heuristics being applied to negotiate between the potentially conflicting bandwidth demands of those applications.
Although allocation of bandwidth between a variety of applications and users of those applications can be based on different approaches, determining which approach to use will typically take into consideration the following factors: the type of data or application and how best to deliver and present that data; the bandwidth requirements of the data, both on average and during periods of increased demand; and how best to alter the initial allocation of bandwidth without compromising a desired or required quality of service (QoS) for that application.
For example, dedicating bandwidth to non-streaming data applications (i.e., those other than streaming audio or video, for example) is not an efficient way to allocate such a resource. This is because such applications do not fully utilize the allotted bandwidth over an extended period of time. They are often idle, and when requiring bandwidth may need to send data in a burst. Thus, the traditional method of dedicating a broadcast channel to such an application is inefficient when it comes to fully utilizing the limited bandwidth available in the network.
As mentioned, instead of dedicating a portion of the available bandwidth to each application, another possible approach is to permit multiple applications to share an amount of bandwidth. However, implementing a shared bandwidth model presents significant challenges. This is because the applications sharing the bandwidth need to cooperate to properly share the bandwidth resource. In addition, the network operator may require a set of rules or heuristics in order to resolve any conflicts that arise between the bandwidth demands of multiple applications. For example, multiple applications may need to transmit data at the same time, or may not be able to be constrained to the bandwidth limitations assigned to them. This may cause an attempt to use more network bandwidth resource than is physically available to the system because applications do not know how other applications are using the same network resources, and if they do, can not reasonably know about the usage patterns of the other applications during a broadcast session (where the usage patterns may introduce demands on bandwidth that exceed the amount allocated).
A possible approach that modifies a baseline bandwidth sharing model is to permit multiple applications to share bandwidth and introduce a prioritization scheme to the data to be transmitted, in conjunction with a policy that causes the highest priority event to be broadcast next over the network. This may be accomplished by “tagging” data packets with a priority indicator to identify those packets which should be sent first from a queue, followed by those with a lower priority. This approach better utilizes the shared resource than the baseline sharing method since idle applications do not waste bandwidth that might otherwise be utilized. However, it is not an optimal solution as data with a lower priority may never be sent or may be delayed sufficiently to render its delivery ineffective. This is because it is possible using this approach to “starve” lower priority applications of needed bandwidth if higher priority applications place a sufficient demand on network resources. This approach is also somewhat inflexible, since once packets are tagged with a priority indication, the relative priority cannot be changed (and hence the relative delivery order cannot be altered). Further, when packets need to be dropped from the transmission schedule due to high traffic conditions, there is no meaningful way to determine which packets to drop and which to broadcast.
What are desired are a system, apparatus, and method for efficiently using a broadcast mode of data transfer to manage the distribution of data to a variety of applications executing on multiple client devices operating in a network, where such system, apparatus, and method overcome the noted disadvantages of existing approaches.